package com.heatup.apt.management.service.company;

import com.baomidou.framework.service.ISuperService;
import com.baomidou.mybatisplus.plugins.Page;
import com.heatup.apt.model.company.CompanyRecharge;
import com.heatup.apt.model.order.OrderCompanyDetail;
import com.heatup.apt.model.order.OrderCompanyInfo;

import java.util.Map;

/**
 * CompanyRecharge 表数据服务层接口
 */
public interface CompanyRechargeService extends ISuperService<CompanyRecharge> {


    /**
     * 更新企业余额 及保存企业充值记录
     *
     * @param companyRecharge 企业充值
     * @param userId          后台操作用户ID
     * @return true成功/false失败
     */
    boolean saveCompanyRecharge(CompanyRecharge companyRecharge, Integer userId);

    /**
     * 企业储值卡历史充值流水 分页
     *
     * @param companyRechargePage 企业充值流水分页类
     * @param year                年份 2017
     * @param month               月份 1-12
     * @param companyId           企业ID
     * @return 企业历史充值流水
     */
    Page<CompanyRecharge> selectRechargePage(Page<CompanyRecharge> companyRechargePage, Integer year, Integer month, Long companyId);

    /**
     * 查询企业储值卡消费流水
     *
     * @param pageIndex        页码
     * @param pageSize         页面大小
     * @param orderCompanyInfo 查询条件
     * @return 企业消费流水
     */
    Map<String, Object> queryCompanyCostList(Integer pageIndex, Integer pageSize, OrderCompanyInfo orderCompanyInfo);

    /**
     * 企业储值卡已完成订单列表
     *
     * @param pageIndex 页码
     * @param pageSize  页面大小
     * @param orderCompanyDetail 查询类
     * @return 企业已完成订单列表
     */
    Page<OrderCompanyDetail> queryOrderPage(Page<OrderCompanyDetail> orderCompanyDetailPage, OrderCompanyDetail orderCompanyDetail);
}